package com.alogic.sdep.client;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alogic.auth.Session;
import com.alogic.auth.SessionManager;
import com.alogic.load.Loadable;
import com.anysoft.util.Configurable;
import com.anysoft.util.XMLConfigurable;
import com.alogic.sdep.SdepConstants;

/**
 * Sdep服务器
 * @author duanwaiwai
 * @since 1.6.12.36 [20190611 duanyy] <br>
 */
public interface SdepServer extends SdepConstants,Configurable,XMLConfigurable,Loadable{
	
	/**
	 * 获取id
	 * @return id
	 */
	public String getId();
	
	/**
	 * 服务器配置是否有效
	 * @return true or false
	 */
	public boolean isOk();
		
	/**
	 * 处理本地发起的登录事件
	 * @param httpReq request
	 * @param httpResp response
	 * @param sm 会话管理器
	 * @param session 当前session
	 */
	public void doLogin(HttpServletRequest httpReq,HttpServletResponse httpResp,SessionManager sm,Session session);
	
	/**
	 * 处理sdep服务器回调事件
	 * @param httpReq request
	 * @param httpResp response
	 * @param sm 会话管理器
	 * @param session 当前session
	 */
	public void doCallback(HttpServletRequest httpReq,HttpServletResponse httpResp,SessionManager sm,Session session);	
	
	/**
	 * 处理本地发起的注销事件
	 * @param httpReq request
	 * @param httpResp response
	 * @param sm 会话管理器
	 * @param session 当前session
	 */
	public void doLogout(HttpServletRequest httpReq,HttpServletResponse httpResp,SessionManager sm,Session session);	
}
